The efficiency of an on-demand streaming system may be measured by its effective use of server, storage, and network resources; its ability to scale those resources to meet growing demands in as close to a linear relationship as possible; and its ability to predictably meet streaming demand with as few disruptions or denials of service as possible. For example, such a system may minimize the replication of content storage except as specified by redundancy and reliability requirements or to increase overall efficiency through caching; minimizing cache resources while maximizing the effective efficiency and scalability of those resources; balancing the overall streaming load across multiple servers, when scaled, to match their respective capacities and provisioning; optimizing usage and efficiency of network elements interconnecting system elements or connecting to outside infrastructure; and maximizing peak utilization of all of these resources, across a range of scalability, while minimizing disruptions or denials of media streaming requests.
A shared global cache in a multi-node stream server is facilitated by the provision of a high-speed back-side network that interconnects the nodes together in such a way that any node may access the content cached on any other node at bandwidths sufficient to support the full streaming capacity of the server.
An advantage of a shared global cache is that only one copy of any given content ever needs to be stored in the collective cache memory of all the nodes. The content stored in any individual node's cache memory is unique to that memory and is not replicated on any other node's cache memory. As a result, the cumulative cache memory of all the nodes together comprises, and behaves as, one effective monolithic cache. The large collective size of the global cache, combined with its total lack of content replication, maximizes caching efficiency, as measured by the cache hit rate.
A global cache is especially effective if independent, content files, volumes, or other logical storage entities are fractured into small uniform-sized blocks and mapped in a striped fashion across all the cache memories of all the nodes comprising the global cache. This arrangement ensures a balanced access load across all the nodes and their interconnecting back-side network, no matter what the content access pattern.
A well-designed shared global cache has three main characteristics: 1) a high-speed back-side interconnect that facilitates shared access to all the cache content; 2) unique content at every node; and 3) balanced access load to and from all nodes. The first characteristic would appear to uniquely enable the second and third. The high-speed globally-shared interconnect enables globally-shared unique content and balanced striped content.